// 字面量类型必须与它的值一样
const info = {
    name: 'aa',
    age: 12
}

// 这种赋值方式会带来一些安全隐患
info.name = 'kobe'

// 联合类型
type Method = 'GET' | 'POST'
function request(url: string, method: Method) {

}

// const options = {
//     url: '/url',
//     method: 'POST'
// }
// options.method会有问题
// request(options.url, options.method)

// 方法一
type Request = {
    url: string,
    method: Method
}
const options: Request = {
    url: '/url',
    method: 'POST'
}

request(options.url, options.method)


// 方法二
// const options = {
//     url: '/url',
//     method: 'POST'
// }
// // options.method会有问题
// request(options.url, options.method as Method)


// 方法三 将宽泛的类型转为字面量的类型
// const options = {
//     url: '/url',
//     method: 'POST'
// } as const
// // options.method会有问题
// request(options.url, options.method)

// 建议使用第一种方法

export { }